﻿namespace Blaze.Framework
{
    using System.IO;
    using UnityEngine;

    public partial class AppConfig : IAppConfig
    {
        /// <summary>
        /// 配置文件的名字。
        /// </summary>
        public const string FileName = "app.config";

        #region IAppConfig Members

        /// <summary>
        /// 保存当前配置。
        /// </summary>
        public void Save()
        {
            var json = JsonUtility.ToJson(this, true);
            File.WriteAllText(mConfigFilePath, json);
        }

        #endregion

        private static readonly string mConfigFilePath = PathUtility.GetPersistentDataPath(FileName);

        #region Fields

        /// <summary>
        /// 是否为调试模式。
        /// </summary>
        public bool debug_mode;

        /// <summary>
        /// 客户端版本号。
        /// </summary>
        public int app_version;

        /// <summary>
        /// 构建时使用的BuildConfig的类名。
        /// </summary>
        public string build_config_type;

        /// <summary>
        /// 渠道标识符。
        /// </summary>
        public string channel;

        /// <summary>
        /// 入口服务器路径，如http://entry.mygame.com:8921。
        /// </summary>
        public string entry_server = "";

        /// <summary>
        /// 在编辑器模拟真机时是否修复Shader引用。
        /// </summary>
        public bool fix_shader_reference;

        /// <summary>
        /// 日志等级。
        /// </summary>
        public int log_level;

        /// <summary>
        /// 登录服务器路径，如20.0.0.3:3001。
        /// </summary>
        public string login_server;

        /// <summary>
        /// 是否使用多线程运行。
        /// </summary>
        public bool multithreaded = true;

        /// <summary>
        /// 是否为对外发布的版本。
        /// </summary>
        public bool release = false;

        /// <summary>
        /// 资源服务器路径，如http://cdn.mygame.com:8921
        /// </summary>
        public string res_server = "";

        /// <summary>
        /// 资源版本号。
        /// </summary>
        public string res_version;

        /// <summary>
        /// 使用的Sdk接口名。
        /// </summary>
        public string sdk;

        /// <summary>
        /// 模拟加载资源的延迟，单位毫秒。
        /// </summary>
        public int simulate_loading_delay;

        /// <summary>
        /// 是否模拟运行时的环境。
        /// </summary>
        public bool simulate_runtime;

        /// <summary>
        /// 是否跳过闪屏动画。
        /// </summary>
        public bool skip_splashscreen;

        #endregion
    }
}